package com.itheima.day01;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentManager
{
    public static void main(String[] args)
    {
        //学生系统管理主菜单控制操作

        //创建学生集合,用于存储创建的学生信息
        ArrayList<Student> array=new  ArrayList<Student>();


        //进行循环执行操作
        while(true)
        {
            //显示主菜单
            System.out.println("------欢迎进入学生管理系统------");
            System.out.println("1.添加学生信息");
            System.out.println("2.删除学生信息");
            System.out.println("3.修改学生信息");
            System.out.println("4.查询学生信息");
            System.out.println("5.退出管理系统");
            System.out.println("------------------------------");

            //用户输入选择操作
            Scanner sc = new Scanner(System.in);
            System.out.println("请选择操作数：");
            int input = sc.nextInt();

            //根据用户输入，执行相应的操作
            switch (input) {
                case 1:
                    //    System.out.println("添加");
                    addStudent(array);
                    break;
                case 2:
                    //    System.out.println("删除");
                    deleteStudent(array);
                    break;
                case 3:
                    //    System.out.println("修改");
                    updataStudent(array);
                    break;
                case 4:
                    //    System.out.println("查询");
                    selectStudent(array);
                    break;
                case 5:
                /*System.out.println("退出");
                break;*/
                    System.out.println("安全退出！");
                    //jvm退出
                    System.exit(0);

            }
        }
    }


    //写相应的操作方法

    //添加学生信息
    public static void addStudent(ArrayList<Student> array)
    {

        //学号标记
        String id;
        //创建学生对象，将用户输入的信息赋值给学生对象
        Student s=new Student();
        //用户键入相应的学生信息
        Scanner sc = new Scanner(System.in);
        //循环操作
        while(true)
        {

            System.out.println("请输入学生学号：");
            id = sc.nextLine();
            //判断学号
            boolean flag = checkId(array,id);
            if (flag) {
                System.out.println("您输入的学号已存在，请重新输入！");
            } else {
                break;
            }
        }

        System.out.println("请输入学生姓名：");
        String name=sc.nextLine();

        System.out.println("请输入学生年龄：");
        int age=sc.nextInt();


        s.setId(id);
        s.setName(name);
        s.setAge(age);

        //将对象中的信息添加到集合中
        array.add(s);
        System.out.println("添加成功！");
    }

    //判断学生学号是否存在？
    public static boolean checkId(ArrayList<Student> array,String id)
    {
        boolean flag=false;
        for(int i=0;i<array.size();i++)
        {
            Student st=array.get(i);
            if (st.getId().equals(id))
            {
                flag=true;
                break;
            }
        }
        return flag;
    }

    //查询所有学生信息
    public static void selectStudent(ArrayList<Student> array)
    {
        //先判断集合中是否有学员信息
        if (array.size()==0)
        {
            System.out.println("请先输入学员信息!");
            return;
        }
     /*
       //用户键入查询学生的学号
        Scanner sc=new Scanner(System.in);

        System.out.println("请输入查询学生的学号：");
        String id=sc.nextLine();
*/
        //显示格式
        System.out.println("学号\t\t姓名\t年龄");

        //遍历集合
        for (int i=0;i<array.size();i++)
        {
            Student s=array.get(i);
            System.out.println(s.getId()+"\t\t"+s.getName()+"\t"+s.getAge()+"岁");
        }
    }

    //删除学员信息
    public static void deleteStudent(ArrayList<Student> array)
    {
        //用户键入学员的学号
        Scanner sc=new Scanner(System.in);
        //用户输入
        System.out.println("请输入要删除学生的学号");
        String id=sc.nextLine();

        //标记学号
        int index=-1;

        //遍历
        for (int i=0;i<array.size();i++)
        {
            Student s=array.get(i);
            //判断是否存在
            if (s.getId().equals(id)) {
                index = i;
            }
        }
        if (index==-1)
        {
            System.out.println("您输入的学号不存在！");
        }else{
            array.remove(index);
            System.out.println("删除成功！");
        }
    }

    //修改学员信息
    public static void  updataStudent(ArrayList<Student> array)
    {

        //标记学号
        int index = -1;
        Scanner sc = new Scanner(System.in);

        //用户键入修改学生的学号
        System.out.println("请输入修改学员的学号：");
        String id = sc.nextLine();

        //遍历
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getId().equals(id)) {
                index = i;
            }
        }
        if (index == -1) {
            System.out.println("您输入的学号有误，请重新输入！");
        } else {
            System.out.println("请输入更新学生的姓名");
            String name = sc.nextLine();
            System.out.println("请输入更新学生的年龄");
            int age = sc.nextInt();
            //创建学生对象,添加修改后的学员信息
            Student st = new Student();
            st.setId(id);
            st.setName(name);
            st.setAge(age);
            //添加到学生的集合中
            array.set(index, st);
            System.out.println("修改成功！");
        }

    }

}

